package com.jpress.validator;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

import com.jpress.utils.FacesUtils;
import com.jpress.utils.InternalExceptionMessagesUtils;

@FacesValidator("validator.MinimoPalavrasValidator")
public class MinimoPalavrasValidator implements Validator{

	@Override
	public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
		
		String string = value.toString();
		String campo = (String) component.getAttributes().get("label");
		if (campo == null) {
			campo = "campo";
		}
		
		int minimoPalavras = 0;
		try {
			minimoPalavras = Integer.parseInt((String) component.getAttributes().get("minimoPalavras"));
		} catch (NumberFormatException nfe) {
			minimoPalavras = 2;
		}
		
		if(string.split(" ").length < minimoPalavras){
			throw InternalExceptionMessagesUtils.createValidatorException(FacesUtils.getParamMessageBundle("validacoes.minimoPalavras", campo, Integer.toString(minimoPalavras)), context);
		}
	}

}
